#include "bsp_store.h"
// bsp/store
// #include "eeprom.h"
#include "msp_flash.h"
#include "msp_bkpr.h"
// #include "w25qxx.h"
// lib
#include "debug.h"

// // 存储设备统一初始化
// void Store_Init(void)
// {
//     //初始化外部 NOR FLASH
//     //TODO bsp待完善
// }

// // 外部 NOR FLASH 读
// uint8_t Store_Ex_Flash_Read(uint32_t address, uint16_t *pdata, uint32_t len)
// {
//     //TODO bsp待完善
// }

// // 外部 NOR FLASH 写
// uint8_t Store_Ex_Flash_Write(uint32_t address, uint16_t *pdata, uint32_t len)
// {
//     //TODO bsp待完善
// }

//内部 FLASH 擦
uint8_t Store_Ins_Flash_Erase(uint32_t address, uint32_t len)
{
    if (len > (FLASH_SECTOR_SIZE/sizeof(uint32_t)))
        return 0;
    return Msp_Flash_Erase_Entire_Sector(address);
}

//内部 FLASH 读
uint8_t Store_Ins_Flash_Read(uint32_t address, uint8_t *pdata, uint32_t len)
{
    // return Msp_Flash_Read(address, (uint32_t *)pdata, (len/4)+1);
    return 0;
}

//内部 FLASH 写
uint8_t Store_Ins_Flash_Write(uint32_t address, uint8_t *pdata, uint32_t len)
{
    // return Msp_Flash_Write(address, (uint32_t *)pdata, (len/4)+1);
    return 0;
}

//内部备份寄存器 读
uint8_t Store_Ins_Bpr_Read(uint8_t *pdata, uint8_t len)
{
    return Msp_Bkpr_Read(pdata, len);
}

//内部备份寄存器 写
uint8_t Store_Ins_Bpr_Write(uint8_t *pdata, uint8_t len)
{
    return Msp_Bkpr_Write(pdata, len);
}

// //外部 EEPROM 读
// uint8_t Store_Ex_Eeprom_Read(uint16_t address, uint8_t *pdata, uint32_t len)
// {
//     return Eeprom_Read(address, pdata, len);
// }

// //外部 EEPROM 写
// uint8_t Store_Ex_Eeprom_Write(uint16_t address, uint8_t *pdata, uint32_t len)
// {
//     return Eeprom_Write(address, pdata, len);
// }
